perm filename PASCAL.NDF[PAS,SYS] blob sn#472069 filedate 1979-09-09 generic text, type C, neo UTF8
COMMENT ⊗   VALID 00008 PAGES
C REC  PAGE   DESCRIPTION
C00001 00001
C00003 00002	  1) PASCAL.OLD[PAS,SYS] and 2) PASCAL.PAS[PAS,SYS]	9-07-79 12:09	pages 1,1
C00009 00003	  1) PASCAL.OLD[PAS,SYS] and 2) PASCAL.PAS[PAS,SYS]	9-07-79 12:09	pages 1,1
C00015 00004	  1) PASCAL.OLD[PAS,SYS] and 2) PASCAL.PAS[PAS,SYS]	9-07-79 12:09	pages 12,12
C00019 00005	  1) PASCAL.OLD[PAS,SYS] and 2) PASCAL.PAS[PAS,SYS]	9-07-79 12:09	pages 34,34
C00022 00006	  1) PASCAL.OLD[PAS,SYS] and 2) PASCAL.PAS[PAS,SYS]	9-07-79 12:09	pages 36,36
C00025 00007	  1) PASCAL.OLD[PAS,SYS] and 2) PASCAL.PAS[PAS,SYS]	9-07-79 12:09	pages 36,36
C00028 00008	  1) PASCAL.OLD[PAS,SYS] and 2) PASCAL.PAS[PAS,SYS]	9-07-79 12:09	pages 36,36
C00030 ENDMK
C⊗;
  1) PASCAL.OLD[PAS,SYS] and 2) PASCAL.PAS[PAS,SYS]	9-07-79 12:09	pages 1,1

**** File 1) PASCAL.OLD[PAS,SYS], Page 1 line 4
1)	C00006 00002	(*$T-,S1500,R30*)       (*STANFORD LOTS PASCAL COMPILER*)
1)	C00014 00003	(*HISTORY*)
**** File 2) PASCAL.PAS[PAS,SYS], Page 1 line 4
2)	C00006 00002	(*$T-,D-,S1700,R30*)       (*STANFORD LOTS PASCAL COMPILER*)
2)	C00014 00003	(*HISTORY*)
***************


**** File 1) PASCAL.OLD[PAS,SYS], Page 1 line 18
1)	C00221 00016	   (*      INIT_COMPILE, PUTADR, LOCATION, INITPASSGO, ERROR   *)
1)	C00229 00017	   (*SYMBOL TABLE INIT: ENTERID, ENTERSTDTYPES, ENTERSTDNAMES, ENTERUNDECL*)
1)	C00256 00018	   (*GET_DIRECTIVES*)
1)	C00269 00019	   (*      COMPILE[ NEWPAGER, WRITEBUFFER, GETNEXTLINE, FINISHLINE, ERROR_WITH_TEXT, WARNING*)
1)	C00281 00020	      (*INSYMBOL[NEXTCH, SKIPCOMMENT[OPTIONS], SKIP_E_DIRECTORY*)
1)	C00290 00021		 (*]INSYMBOL*)
1)	C00301 00022	      (*SEARCHSECTION, SEARCHID, SKIPIFERR, IFERRSKIP, ERRANDSKIP*)
1)	C00306 00023	      (*  BLOCK[ TYPE CHECKING: CONSTANT, GETBOUNDS, STRING, COMPTYPES[CHECKSSTRING[ISMAGIC]] *)
1)	C00319 00024		 (*  TYPEDEFINITION     (TYPE DEFINITION PARSER)        *)
1)	C00346 00025		 (*      PARSING OF DECLARATIONS: LABELDECLARATION, CONSTANTDECLARATION, TYPEDECLARATION, VARIABLEDECLARATION        *)
1)	C00375 00026		 (* BODY[GENERATE_WORD,INSERT_ADDRESS,INCREMENT_REGC,DEPOSIT_CONSTANT,MACRO..,PUT_PAGENUMBER,PUT_LINENUMBER,SUPPORT,ALFACONSTANT,ADDNEWCOUNTER*)
1)	C00388 00027		    (*CLOSEFILES, ENTERBODY, LEAVEBODY*)
1)	C00409 00028		    (*FETCH_BASIS,GET_PARAMETER_ADDRESS,GENERATE_CODE,LOAD,STORE,LOAD_ADDRESS*)
1)	C00422 00029		    (*  WRITE_MACHINE_CODE[ AND ITS PARTS.      *)
1)	C00463 00030		       (*      PARTS. ]WRITE_MACHINE_CODE.     *)
1)	C00481 00031		    (*  STATEMENT[  MAKEREAL, SELECTOR[SUBLOWBOUND] *)
1)	C00495 00032		       (*      PROFUNCALL[GETFILENAME,GETPUTRESETREWRITE,READREADLN,BREAKCALL,WRITEWRITELN,MESSAGECALL*)
1)	C00521 00033			  (* PACKUNPACK, NEWDISPOSE, FIRSTLAST, LOWERUPPERBOUND *)
1)	C00542 00034			  (*MINMAX,GETLINENRCALL,PAGECALL,DATECALL,TIMECALL,CLOCKCALL,CARDCALL*)
1)	C00550 00035			  (*ABSCALL,REALTIMECALL,SQRCALL,ODDCALL,ORDCALL,CHRCALL,PREDSUCC,EOFEOLN,PROTECTION,CALLTOCALL[GETSTRINGADDRESS],HALTCALL*)
1)	C00559 00036			  (*CALL_NON_STANDARD[COMPPARAM,CHECKSSTRINGCALLS,CHARCONSTANT] ]PROFUNCALL*)
1)	C00584 00037		       (*      EXPRESSION[CHANGEBOOL, SEARCHCODE, SIMPLEEXPRESSION[TERM[FACTOR]]] *)
1)	C00616 00038		       (*      ASSIGNMENT[STOREGLOBALS[STOREWORD,GETNEWGLOBPTR]] *)
1)	C00627 00039		       (*GOTOSTATEMENT,COMPOUNDSTATEMENT,IFSTATEMENT,CASESTATEMENT,REPEATSTATEMENT,WHILESTATEMENT,FORSTATEMENT,LOOPSTATEMENT,WITHSTATEMENT*)
1)	C00650 00040		       (*      ]STATEMENT ]BODY ]BLOCK  *)
1)	C00663 00041	      (*  ]COMPILE,REPORTTIME,JUMPTO *)
1)	C00673 00042	   (*     MAIN BODY    *)
1)	C00685 ENDMK
1)	C⊗;
1)	(*$T-,S1500,R30*)       (*STANFORD LOTS PASCAL COMPILER*)
1)	(********************************************************************************
**** File 2) PASCAL.PAS[PAS,SYS], Page 1 line 18
2)	C00222 00016	   (*      INIT_COMPILE, PUTADR, LOCATION, INITPASSGO, ERROR   *)
2)	C00230 00017	   (*SYMBOL TABLE INIT: ENTERID, ENTERSTDTYPES, ENTERSTDNAMES, ENTERUNDECL*)
2)	C00257 00018	   (*GET_DIRECTIVES*)
2)	C00270 00019	   (*      COMPILE[ NEWPAGER, WRITEBUFFER, GETNEXTLINE, FINISHLINE, ERROR_WITH_TEXT, WARNING*)
2)	C00282 00020	      (*INSYMBOL[NEXTCH, SKIPCOMMENT[OPTIONS], SKIP_E_DIRECTORY*)
2)	C00291 00021		 (*]INSYMBOL*)
  1) PASCAL.OLD[PAS,SYS] and 2) PASCAL.PAS[PAS,SYS]	9-07-79 12:09	pages 1,1

2)	C00302 00022	      (*SEARCHSECTION, SEARCHID, SKIPIFERR, IFERRSKIP, ERRANDSKIP*)
2)	C00307 00023	      (*  BLOCK[ TYPE CHECKING: CONSTANT, GETBOUNDS, STRING, COMPTYPES[CHECKSSTRING[ISMAGIC]] *)
2)	C00320 00024		 (*  TYPEDEFINITION     (TYPE DEFINITION PARSER)        *)
2)	C00347 00025		 (*      PARSING OF DECLARATIONS: LABELDECLARATION, CONSTANTDECLARATION, TYPEDECLARATION, VARIABLEDECLARATION, proceduredeclaration[parameterlist[ffparlist]] *)
2)	C00376 00026		 (* BODY[GENERATE_WORD,INSERT_ADDRESS,INCREMENT_REGC,DEPOSIT_CONSTANT,MACRO..,PUT_PAGENUMBER,PUT_LINENUMBER,SUPPORT,ALFACONSTANT,ADDNEWCOUNTER*)
2)	C00389 00027		    (*CLOSEFILES, ENTERBODY, LEAVEBODY*)
2)	C00410 00028		    (*FETCH_BASIS,GET_PARAMETER_ADDRESS,GENERATE_CODE,LOAD,STORE,LOAD_ADDRESS*)
2)	C00423 00029		    (*  WRITE_MACHINE_CODE[ AND ITS PARTS.      *)
2)	C00464 00030		       (*      PARTS. ]WRITE_MACHINE_CODE.     *)
2)	C00482 00031		    (*  STATEMENT[  MAKEREAL, SELECTOR[SUBLOWBOUND] *)
2)	C00496 00032		       (*      PROFUNCALL[GETFILENAME,GETPUTRESETREWRITE,READREADLN,BREAKCALL,WRITEWRITELN,MESSAGECALL*)
2)	C00522 00033			  (* PACKUNPACK, NEWDISPOSE, FIRSTLAST, LOWERUPPERBOUND *)
2)	C00543 00034			  (*MINMAX,GETLINENRCALL,PAGECALL,DATECALL,TIMECALL,CLOCKCALL,CARDCALL*)
2)	C00551 00035			  (*ABSCALL,REALTIMECALL,SQRCALL,ODDCALL,ORDCALL,CHRCALL,PREDSUCC,EOFEOLN,PROTECTION,CALLTOCALL[GETSTRINGADDRESS],HALTCALL*)
2)	C00560 00036			  (*CALL_NON_STANDARD[COMPPARAM,CHECKSSTRINGCALLS,CHARCONSTANT,saveexpr] ]PROFUNCALL*)
2)	C00587 00037		       (*      EXPRESSION[CHANGEBOOL, SEARCHCODE, SIMPLEEXPRESSION[TERM[FACTOR]]] *)
2)	C00619 00038		       (*      ASSIGNMENT[STOREGLOBALS[STOREWORD,GETNEWGLOBPTR]] *)
2)	C00630 00039		       (*GOTOSTATEMENT,COMPOUNDSTATEMENT,IFSTATEMENT,CASESTATEMENT,REPEATSTATEMENT,WHILESTATEMENT,FORSTATEMENT,LOOPSTATEMENT,WITHSTATEMENT*)
2)	C00653 00040		       (*      ]STATEMENT ]BODY ]BLOCK  *)
2)	C00666 00041	      (*  ]COMPILE,REPORTTIME,JUMPTO *)
2)	C00676 00042	   (*     MAIN BODY    *)
2)	C00688 ENDMK
2)	C⊗;
2)	(*$T-,D-,S1700,R30*)       (*STANFORD LOTS PASCAL COMPILER*)
2)	(********************************************************************************
***************


**** File 1) PASCAL.OLD[PAS,SYS], Page 3 line 185
1)	 *              (32)B   MESSAGE WOULD BLOW WHEN NEEDING LAST A PASCAL-WRITTEN RUNTIME.
1)	 *
**** File 2) PASCAL.PAS[PAS,SYS], Page 3 line 185
2)	 *              (32)B   MESSAGE WOULD BLOW WHEN NEEDING LAST A PASCAL-WRITTEN RUNTIME. FIXED.
2)	 *
***************


**** File 1) PASCAL.OLD[PAS,SYS], Page 12 line 21
1)	   %1  HEADER = 'PASCAL/LOTS FROM   1-JUL-79';        (* 14.*)        \
1)	   %2  HEADER = 'PASSGO/LOTS FROM   1-JUL-79';     (* 15.*)        \
1)	   %3  header = 'PASCAL/SAIL 1.0    1-JUL-79';         \
1)	   %4  HEADER = 'PASSGO/SAIL 1.0    1-JUL-79';         \
1)	   headlen = 11;   (*PART OF THE HEADER THAT WIL SHOW UP IN TTY*)
**** File 2) PASCAL.PAS[PAS,SYS], Page 12 line 21
2)	   %1  HEADER = 'PASCAL/LOTS 1.1    6-SEP-79';        (* 14.*)        \
2)	   %2  HEADER = 'PASSGO/LOTS 1.1    6-SEP-79';        (* 15.*)        \
2)	   %3  header = 'PASCAL/SAIL 1.1    6-SEP-79';         \
2)	   %4  HEADER = 'PASSGO/SAIL 1.1    6-SEP-79';         \
  1) PASCAL.OLD[PAS,SYS] and 2) PASCAL.PAS[PAS,SYS]	9-07-79 12:09	pages 12,12

2)	   headlen = 11;   (*PART OF THE HEADER THAT WIL SHOW UP IN TTY*)
***************


**** File 1) PASCAL.OLD[PAS,SYS], Page 15 line 200
1)	   extna[declfunc,22] := 'GETCHA    '; extlanguage[declfunc,22] := pascalsy;           (* 25.*)
1)	   extna[declfunc,23] := 'POS       '; extlanguage[declfunc,23] := pascalsy;           (* 25.*)
**** File 2) PASCAL.PAS[PAS,SYS], Page 15 line 200
2)	   extna[declfunc,22] := 'GETCHR    '; extlanguage[declfunc,22] := pascalsy;           (* 25.*)
2)	   extna[declfunc,23] := 'POS       '; extlanguage[declfunc,23] := pascalsy;           (* 25.*)
***************


**** File 1) PASCAL.OLD[PAS,SYS], Page 16 line 29
1)	   counting := false;          (* 28.*)
1)	   genprocfile := false;
**** File 2) PASCAL.PAS[PAS,SYS], Page 16 line 29
2)	   counting := false;          (* 28.*) errorinlast := true;		(* 30.*)
2)	   genprocfile := false;
***************


**** File 1) PASCAL.OLD[PAS,SYS], Page 25 line 1
1)		 (*      PARSING OF DECLARATIONS: LABELDECLARATION, CONSTANTDECLARATION, TYPEDECLARATION, VARIABLEDECLARATION        *)
1)	      PROCEDURE labeldeclaration;
**** File 2) PASCAL.PAS[PAS,SYS], Page 25 line 1
2)		 (*      PARSING OF DECLARATIONS: LABELDECLARATION, CONSTANTDECLARATION, TYPEDECLARATION, VARIABLEDECLARATION, proceduredeclaration[parameterlist[ffparlist]] *)
2)	      PROCEDURE labeldeclaration;
***************


**** File 1) PASCAL.OLD[PAS,SYS], Page 32 line 408
1)					 generate_code( 200B (*MOVE*) , regin+3 , gattr ) ;
1)					 regc := gattr.reg ;
**** File 2) PASCAL.PAS[PAS,SYS], Page 32 line 408
2)					 generate_code( 200B (*MOVE*) , regc+1 , gattr ) ;
2)					 regc := gattr.reg ;
***************


**** File 1) PASCAL.OLD[PAS,SYS], Page 34 line 28
1)			  LOOP
**** File 2) PASCAL.PAS[PAS,SYS], Page 34 line 28
2)			  macro3(271b(*addi*),topp,topp_offset+1);
2)			  LOOP
***************


  1) PASCAL.OLD[PAS,SYS] and 2) PASCAL.PAS[PAS,SYS]	9-07-79 12:09	pages 34,34

**** File 1) PASCAL.OLD[PAS,SYS], Page 34 line 44
1)				      macro4(202B(*MOVEM*),reg,topp,topp_offset + i);
1)				      IF first_expression THEN
**** File 2) PASCAL.PAS[PAS,SYS], Page 34 line 45
2)				      macro4(202B(*MOVEM*),reg,topp,0);
2)				      macro3(350b(*aos*),0,topp);
2)				      IF first_expression THEN
***************


**** File 1) PASCAL.OLD[PAS,SYS], Page 34 line 71
1)				insert_address(no, insert_size, topp_offset + i);
1)				IF conversion THEN
**** File 2) PASCAL.PAS[PAS,SYS], Page 34 line 73
2)				insert_address(no, insert_size, topp_offset + i+1);
2)				macro3(275b(*subi*),topp,topp_offset+i+1);
2)				IF conversion THEN
***************


**** File 1) PASCAL.OLD[PAS,SYS], Page 36 line 1
1)			  (*CALL_NON_STANDARD[COMPPARAM,CHECKSSTRINGCALLS,CHARCONSTANT] ]PROFUNCALL*)
1)		       PROCEDURE call_non_standard;
**** File 2) PASCAL.PAS[PAS,SYS], Page 36 line 1
2)			  (*CALL_NON_STANDARD[COMPPARAM,CHECKSSTRINGCALLS,CHARCONSTANT,saveexpr] ]PROFUNCALL*)
2)		       PROCEDURE call_non_standard;
***************


**** File 1) PASCAL.OLD[PAS,SYS], Page 36 line 13
1)			  FUNCTION compparam(fcp1,fcp2 : ctp):boolean;
**** File 2) PASCAL.PAS[PAS,SYS], Page 36 line 12
2)			     oldsstringstart,
2)			     oldparsingparameters: boolean;
2)			  FUNCTION compparam(fcp1,fcp2 : ctp):boolean;
***************


**** File 1) PASCAL.OLD[PAS,SYS], Page 36 line 93
1)			  BEGIN   (* CALL_NON_STANDARD *)
**** File 2) PASCAL.PAS[PAS,SYS], Page 36 line 95
2)	(* 25. put string expressions in memory, to be able to address them.*)
2)	procedure saveexpr;
2)	   var
2)		lattr: attr;
2)	   begin (*saveexpr*)
2)	   with lattr do
2)		begin
  1) PASCAL.OLD[PAS,SYS] and 2) PASCAL.PAS[PAS,SYS]	9-07-79 12:09	pages 36,36

2)		typtr := gattr.typtr;
2)		kind := varbl;
2)		vlevel := level;
2)		dplmt := lc;
2)		indexr := basis;
2)		packfg := notpack;
2)		indbit := 0;
2)		   vrelbyte := no;
2)		lc := lc + typtr↑.size;
2)		end;
2)	   if lcmax < lc then
2)		lcmax := lc;
2)	   store(gattr.reg,lattr);
2)	   gattr := lattr;
2)	   regc := regc-1;
2)	   end (*saveexpr*);
2)			  BEGIN   (* CALL_NON_STANDARD *)
***************


**** File 1) PASCAL.OLD[PAS,SYS], Page 36 line 96
1)			  pctp := fcp;    (* 25.*)
**** File 2) PASCAL.PAS[PAS,SYS], Page 36 line 122
2)				llc := lc ;
2)			  pctp := fcp;    (* 25.*)
***************


**** File 1) PASCAL.OLD[PAS,SYS], Page 36 line 119
1)				llc := lc ;
1)				lc := lc + save_count ;
**** File 2) PASCAL.PAS[PAS,SYS], Page 36 line 146
2)				lc := lc + save_count ;
***************


**** File 1) PASCAL.OLD[PAS,SYS], Page 36 line 139
1)			     parsingparameters := true;  (* 25. *)
**** File 2) PASCAL.PAS[PAS,SYS], Page 36 line 165
2)			     oldparsingparameters := parsingparameters;
2)			     oldsstringstart := sstringstart;
2)			     parsingparameters := true;  (* 25. *)
***************


**** File 1) PASCAL.OLD[PAS,SYS], Page 36 line 236
1)								 IF (typtr↑.bitsize = 7) AND (kind = cst) THEN
1)								    charconstant(chr(cval.ival));
  1) PASCAL.OLD[PAS,SYS] and 2) PASCAL.PAS[PAS,SYS]	9-07-79 12:09	pages 36,36

1)						     load_address;
**** File 2) PASCAL.PAS[PAS,SYS], Page 36 line 264
2)								if kind = cst then
2)								    begin
2)								 IF typtr↑.bitsize = 7 THEN
2)								    charconstant(chr(cval.ival));
2)								    end
2)								 else if kind = expr then
2)								    saveexpr;
2)						     load_address;
***************


**** File 1) PASCAL.OLD[PAS,SYS], Page 36 line 338
1)			     parsingparameters := false; (* 25.*)
1)			     IF sy = rparent THEN insymbol
**** File 2) PASCAL.PAS[PAS,SYS], Page 36 line 371
2)			     parsingparameters := oldparsingparameters; (* 25.*)
2)			     sstringstart := oldsstringstart;
2)			     IF sy = rparent THEN insymbol
***************


**** File 1) PASCAL.OLD[PAS,SYS], Page 36 line 368
1)				   macro3(515B(*HRLZI*),reg0,-number_of_parameters);
**** File 2) PASCAL.PAS[PAS,SYS], Page 36 line 402
2)				   if level > 1 then
2)				      macro4r(202b(*movem*),newreg,reg0,lc)
2)				   else
2)				      macro4(202b(*movem*),newreg,basis,lc);
2)				   lc := lc + 1;
2)				   if lc > lcmax then lcmax := lc;
2)				   macro3(515B(*HRLZI*),reg0,-number_of_parameters);
***************


**** File 1) PASCAL.OLD[PAS,SYS], Page 36 line 385
1)				   macro3(275B(*SUBI*),topp,topp_offset);
**** File 2) PASCAL.PAS[PAS,SYS], Page 36 line 425
2)				   if level > 1 then
2)				      macro4r(200b(*move*),newreg,reg0,lc)
2)				   else
2)				      macro4r(200b(*move*),newreg,basis,lc);
2)				   macro3(275B(*SUBI*),topp,topp_offset);
***************


**** File 1) PASCAL.OLD[PAS,SYS], Page 36 line 425
  1) PASCAL.OLD[PAS,SYS] and 2) PASCAL.PAS[PAS,SYS]	9-07-79 12:09	pages 36,36

1)			     lc := llc
1)			     END ;
1)			  gattr.typtr := fcp↑.idtype; regc := lregc
**** File 2) PASCAL.PAS[PAS,SYS], Page 36 line 469
2)			     END ;
2)			     lc := llc;
2)			  gattr.typtr := fcp↑.idtype; regc := lregc
***************


**** File 1) PASCAL.OLD[PAS,SYS], Page 40 line 60
1)				   IF (klass = vars) AND (vlev = 0) AND (sy = arrow) AND
**** File 2) PASCAL.PAS[PAS,SYS], Page 40 line 60
2)				IF klass = proc THEN profuncall(fsys,lcp)
2)				else
2)				   begin
2)				   IF (klass = vars) AND (vlev = 0) AND (sy = arrow) AND
***************


**** File 1) PASCAL.OLD[PAS,SYS], Page 40 line 65
1)				IF lcp↑.klass = proc THEN profuncall(fsys,lcp)
1)				ELSE assignment(lcp)
1)				END;
**** File 2) PASCAL.PAS[PAS,SYS], Page 40 line 68
2)				   assignment(lcp);
2)				   end;
2)				END;
***************


**** File 1) PASCAL.OLD[PAS,SYS], Page 40 line 271
1)			  counter := 1; startofcounts := lcmain;
**** File 2) PASCAL.PAS[PAS,SYS], Page 40 line 274
2)			  lcmain := lcmain + 32;	(*to provide for space for temporaries*)
2)			  counter := 1; startofcounts := lcmain;
***************